package com.spic.business.violation.supervision.speed.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.spic.business.common.core.workflow.WorkFlowEntity;
import com.spic.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 超速记录对象 violations_speed_record
 *
 * @author yangjie
 * @date 2021-10-12
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ViolationsSpeedRecord extends WorkFlowEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 违章规则id */
    private Long speedRulesId;
    //违章位置
    private String roadName;

    //违章来源
    @Excel(name = "违章来源")
    private String dataType;
    /** 违章分类 */
    @Excel(name = "违章分类",dictType = "violations_source")
    private String illegalSources;

    /** 违章类型 */
    @Excel(name = "违章类型",dictType="violations_type")
    private String illegalType;

    /** 违章区域 */
    @Excel(name = "违章区域",dictType = "violations_addr")
    private String illegalArea;

    /** 违章时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    @Excel(name = "违章时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date illegalTime;

    /** 关联车辆 */
    @Excel(name = "关联车辆")
    private String vehicleNumber;

    /** 行驶速度 */
    @Excel(name = "行驶速度")
    private Double runningSpeed;

    /** 关联部门 */
    @Excel(name = "管理部门",cahceType = Excel.CacheType.DEPT)
    @NotBlank(message = "管理部门为空")
    private String associatedDept;

    @Excel(name = "车辆归属部门")
    @NotBlank(message = "车辆归属部门为空")
    private String vehicleUnit;

    /** 责任人员 */
    @Excel(name = "责任人员")
    @NotBlank(message = "责任人员为空")
    private String responsible;

    /** 违章说明 */
    private String illegalInstructions;

    /** 处罚金额 */
    private Double penaltyAmount;

    /** 提报人 */
    private String mentionDissolution;

    /** 整改要求 */
    private String rectificationRequirements;

    /** 整改措施 */
    private String rectificationMeasures;

    /** 整改完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    //@Excel(name = "整改完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date rectificationEndTime;

    /** 验收意见 */
    private String acceptanceOpinion;

    /** 验收人 */
    //@Excel(name = "验收人",cahceType = Excel.CacheType.USER)
    private String acceptor;

    /** 验收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    //@Excel(name = "验收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date acceptanceTime;


    private String alarmCarType;//门禁状态

    /** 关联附件 */
    private String associatedAttachments;



}
